/**
 * 【同步方法】生成随机数
 * @param min 最小值，默认：0
 * @param max 最大值，默认：9
 * @param decimals 要生成小数的位数，默认：0
 * @return 生成的随机数字
 */
function numRandom(min = 0, max = 9, decimals = 0) {
    
    // 二值大小判定
    let real_min = 0; // 真正的小值
    let real_max = 0; // 真正的大值
    if (min < max) { real_min = min; real_max = max; }
    else { real_min = max; real_max = min; }
    
    // 处理小数位
    let length_decim = '1';
    // 需要小数才执行
    if (decimals > 0) {
        // 转换范围值为字符串
        let str_min = real_min.toString();
        let str_max = real_max.toString();
        // 根据小数位数给原数据末尾添加0
        for (let i = 0; i < decimals; i++) {
            str_min += '0';
            str_max += '0';
            length_decim += '0';
        }
        // 重新转化为数字
        real_min = parseInt(str_min);
        real_max = parseInt(str_max);
    }
    
    // 原生方法生成随机数
    let data_return = Math.floor(Math.random() * (real_max - real_min + 1) + real_min);
    // 如果要处理小数位
    if (decimals > 0) {
        // 需要向左移动小数点位数
        let move_decim = parseInt(length_decim); 
        // 左移小数点
        data_return = data_return / move_decim; 
    }
    
    // 返回结果数据
    return data_return;
}

export default numRandom;